Various mechanisms exist to provide data and services over a network such as the public Internet, also known as the Web. The Web is witnessing a revolution towards a service-oriented architecture, where distributed, autonomous, and platform-agnostic Web services are becoming the standard way for organizations to expose their data and services. This revolution has been significantly expedited in recent years by the proliferation of cloud platforms such as provided by Amazon Web Services (AWS) cloud computing and Microsoft Corp. Azure® cloud computing service for building, deploying, and managing applications and services through a global network of managed data centers. These and other services provide large-scale storage and computing infrastructure to support low-cost construction and maintenance of Web services.
Web services are often exposed via Web application program interfaces (APIs), which are called programmatically. Most users, however, do not have the programming skills to make API calls. Instead, they rely on various desktop or Web applications to access Web services. For example, a sports application may gather match results from Web service providers such as ESPN and present them to users. However, this brings the burden on users to switch between and adapt to different applications, and constrains users to the fixed or slow-adapting functionality of each application.